﻿using NHibernate;
using NHibernate.Linq;
using Ninject;

namespace Machinery
{
    public interface IPart
    {
        /// <summary>
        /// The Ninject Kernel. We recommend that you the Get<T> method of the IPart instead of Kernel.Get<T> when possible.
        /// </summary>
        IKernel Kernel { get; }
        T Get<T>();

        /// <summary>
        /// Database is simply shorthand for the NHibnernate session.
        /// </summary>
        ISession Database { get; }
        INHibernateQueryable<T> DatabaseTable<T>();

        
        
    }


}
